又是一道神奇的题目。
一句话题意:给定 $n,m$ 求 $\sum_{i=1}^{n}\sum_{j=1}^{m}d(ij)$
于是开始推式子:
有这么一条公式:
这个非常重要,至于证明的话,本人太弱,留个坑,到时候再填,请大家谅解 $QwQ$ 。
然后呢?发现题目求的式子后面正好是 $d(ij)$ ,于是美滋滋的套进去。
$x$ 和 $y$ 我们扔到前面去枚举,后面来计算它们对它们的倍数做出的贡献。
可以知道前面的 $x$ 在 $n$ 以内的倍数有 $\lfloor\frac{n}{x}\rfloor$ 个,$y$ 在 $m$ 以内的倍数有 $\lfloor\frac{m}{y}\rfloor$,于是:
按照套路,我们设:
那么显然有:
这个式子很有熟悉的味道,显然是反演常见的第二种形式。
所以就有:
我们的答案是$f(1)$,那么就是:
现在来考虑怎么计算 $g$ 。
后面的 $k$ 很碍眼,消掉他。
于是我们预处理一个函数 $s$ :
那么 $g(k)$ 就很好算了:
复杂度的话还好,预处理 $s$ 时可以整出分块,$O(\sqrt{n})$ 爽歪歪。然后的话,发现统计答案的时候 $g$ 函数也可以整出分块,$O(\sqrt{n})$ 。最后总时间复杂度 $O(T\sqrt{n})$ (???)反正过了就行,我也不会算 $QwQ$ 。
Code:
1 |
|
本文标题:【题解】 [SDOI2015]约数个数和 莫比乌斯反演 luoguP3327
文章作者:Qiuly
发布时间:2019年03月01日 - 00:00
最后更新:2019年03月29日 - 13:54
原始链接:http://qiulyblog.github.io/2019/03/01/[题解]luoguP3327/
许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。